using Localization.Resources.AbpUi;
using Volo.Abp.Account;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Identity;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
using Volo.Abp.PermissionManagement.HttpApi;
using Volo.Abp.SettingManagement;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using WL.Think.Abp.Localization;
using WL.Think.Abp.Modules;

namespace WL.Think.Abp
{
    [DependsOn(
   typeof(AbpPermissionManagementHttpApiModule),
       typeof(AbpSettingManagementHttpApiModule),
       typeof(AbpAccountHttpApiModule),
       typeof(AbpIdentityHttpApiModule),
       typeof(AbpTenantManagementHttpApiModule),
       typeof(AbpFeatureManagementHttpApiModule), 
       typeof(AbpSwashbuckleModule),
       typeof(ThinkAbpCoreModule)
    )]
    public abstract class ThinkAbpHttpApiModule : ThinkModule<ThinkAbpHttpApiModule>
    {
        protected override void ConfigureLocalization(ServiceConfigurationContext context)
        {
            Configure<AbpLocalizationOptions>(options =>
            {
                // 配置资源继承，资源可以继承多个其他资源
                options.Resources
                    .Get<ThinkResource>()
                    .AddBaseTypes(typeof(AbpUiResource));
            });
        }
    }
}
